#import <Foundation/Foundation.h>
#import "PersistentDataType.h"

/**
 * An SFUContact is an object that represents a single contact at SFU.
 *
 * Conforms to the PersistentDataType protocol.
 *
 * @author      James Lin
 * @version     1.0.5
 * @since       1.0.5
 * @see         PersistentDataType
 */
@interface SFUContact : NSObject <PersistentDataType> {
	NSString*            lastName;  // The contact's last name
	NSString*            firstName; // The contact's first name
	NSString*            jobTitle;  // The contact's job title
	NSMutableDictionary* phoneDict; // The phone numbers of the contact
	NSMutableDictionary* roomDict;  // The room numbers of the contact
	NSString*            email;     // The contact's email
	NSString*            aboutURL;  // The contact's optional about URL
}

@property (nonatomic, retain) NSString* lastName;
@property (nonatomic, retain) NSString* firstName;
@property (nonatomic, retain) NSString* jobTitle;
@property (nonatomic, retain) NSMutableDictionary* phoneDict;
@property (nonatomic, retain) NSMutableDictionary* roomDict;
@property (nonatomic, retain) NSString* email;
@property (nonatomic, retain) NSString* aboutURL;

/**
 * Initialize the SFU contact with complete details.
 *
 * @param theLastName   the contact's last name
 * @param theFirstName  the contact's first name
 * @param theJobTitle   the contact's job title
 * @param thePhoneDict  the phone numbers of the contact
 * @param theRoomDict   the room numbers of the contact
 * @param theEmail      the contact's email
 * @param theAboutURL   the contact's optional about URL
 * @return              the initialized SFUContact
 */
- (id) initWithLastName:(NSString*)theLastName 
			  firstName:(NSString*)theFirstName 
			   jobTitle:(NSString*)theJobTitle 
			  phoneDict:(NSMutableDictionary*)thePhoneDict 
			   roomDict:(NSMutableDictionary*)theRoomDict 
				  email:(NSString*)theEmail 
			   aboutURL:(NSString*)theAboutURL;

@end
